package com.yuyou.fn.tms.vo.resource;

import com.yuyou.fn.common.lang.Tuple3;
import com.yuyou.fn.educational.entity.CourseClass;
import com.yuyou.fn.educational.entity.StudentReg;
import com.yuyou.fn.tms.util.PeriodUtils;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;

/**
 * Created by lzh on 2019/4/18.
 */
public class ResourceReg {
    @ApiModelProperty("业务系统中的报名ID")
    private Long regId ;//业务系统中的报名ID

    @ApiModelProperty("报名对应班级ID")
    private Long regClassId ;//报名对应班级ID

    @ApiModelProperty("报名学生ID")
    private Long regStuId ;//报名学生ID

    @ApiModelProperty("报名状态 0 在读 1已退")
    private Integer regStatus ;//报名状态 0 在读 1已退

    @ApiModelProperty("0 正常(默认值) 1 已失效（已删除）")
    private Integer state ;//0 正常(默认值) 1 已失效（已删除）

    @ApiModelProperty("报名对应班级名字")
    private String regClassName ;//报名对应班级名字

    @ApiModelProperty("科目ID")
    private Long subtId ;//科目ID

    @ApiModelProperty("年级ID")
    private Long graId ;//年级ID

    @ApiModelProperty("校区ID")
    private Long deptId ;//校区ID

    @ApiModelProperty("年份")
    private String claYear ;//年份

    @ApiModelProperty("季节")
    private Long seasonId ;//季节

    @ApiModelProperty("班级开始日期 （用于计算当前是否在读）")
    private Date startDate ;//班级开始日期 （用于计算当前是否在读）

    @ApiModelProperty("班级结束日期 （用于计算当前是否在读）")
    private Date endDate ;//班级结束日期 （用于计算当前是否在读）

    @ApiModelProperty("创建时间")
    private Date createTime ;//创建时间

    @ApiModelProperty("更新时间")
    private Date modifyTime ;//更新时间

    @ApiModelProperty("班型ID")
    private Integer clvId ;//班型ID

    public ResourceReg(StudentReg studentReg, CourseClass courseClass){
        Tuple3<Long, String, String> sea = PeriodUtils.periodName2Sea(courseClass.getPeriodName());
        this.setRegId(studentReg.getRegId());//业务系统中的报名ID
        this.setRegClassId(studentReg.getClassId());//报名对应班级ID
        this.setRegStuId(studentReg.getStudentId());//报名学生ID
        this.setRegStatus(studentReg.getRegStatus()==0?0:1);//报名状态 0 在读 1已退
        this.setState(studentReg.getRegStatus()==4?1:0);//0 正常(默认值) 1 已失效（已删除）
        this.setRegClassName(courseClass.getClassName());//报名对应班级名字
        this.setSubtId(courseClass.getSubjectId());//科目ID
        this.setGraId(courseClass.getGradeId());//年级ID
        this.setDeptId(courseClass.getCampusId());//校区ID
        this.setClaYear(sea.getSecond());//年份
        this.setSeasonId(sea.getFirst());//季节id
        this.setStartDate(courseClass.getStartCourseTime());//班级开始日期 （用于计算当前是否在读）
        this.setEndDate(courseClass.getEndCourseTime());//班级结束日期 （用于计算当前是否在读）
        this.setCreateTime(studentReg.getCreateTime());//创建时间
        this.setModifyTime(studentReg.getUpdateTime());//更新时间
        this.setClvId(courseClass.getLevel());//班型ID
    }

    public Long getRegId() {
        return regId;
    }

    public void setRegId(Long regId) {
        this.regId = regId;
    }

    public Long getRegClassId() {
        return regClassId;
    }

    public void setRegClassId(Long regClassId) {
        this.regClassId = regClassId;
    }

    public Long getRegStuId() {
        return regStuId;
    }

    public void setRegStuId(Long regStuId) {
        this.regStuId = regStuId;
    }

    public Integer getRegStatus() {
        return regStatus;
    }

    public void setRegStatus(Integer regStatus) {
        this.regStatus = regStatus;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public String getRegClassName() {
        return regClassName;
    }

    public void setRegClassName(String regClassName) {
        this.regClassName = regClassName;
    }

    public Long getSubtId() {
        return subtId;
    }

    public void setSubtId(Long subtId) {
        this.subtId = subtId;
    }

    public Long getGraId() {
        return graId;
    }

    public void setGraId(Long graId) {
        this.graId = graId;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public String getClaYear() {
        return claYear;
    }

    public void setClaYear(String claYear) {
        this.claYear = claYear;
    }

    public Long getSeasonId() {
        return seasonId;
    }

    public void setSeasonId(Long seasonId) {
        this.seasonId = seasonId;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getModifyTime() {
        return modifyTime;
    }

    public void setModifyTime(Date modifyTime) {
        this.modifyTime = modifyTime;
    }

    public Integer getClvId() {
        return clvId;
    }

    public void setClvId(Integer clvId) {
        this.clvId = clvId;
    }
}
